/* 
 * Die Klasse Anzeige baut das zweiteilige Fenster (Uebersicht der 
 * Regale mit markiertem Regal, sowie Frontansicht des Regals) zusammen.
 * 
 * Datei: Anzeige.java        Autor:  Christian Plappert
 * Datum: 30.11.2011          Version: 0.1
 * 
 * Historie: 
 * 
 * 30.11.2011:  v0.1    Klasse wurde angelegt.                    
 */
package bibvis;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextPane;

import GUI.Dashboard;

import medienverwaltung.Regal;

public class Anzeige extends JFrame
{
  private static final long serialVersionUID = 1L;
  private JPanel pufferzone, front, beschreibungUebersicht,
      beschreibungFront;
  private Markierer uebersicht;
  private JTextPane txt_regalInfo, txt_regalNr, txt_regalName,
      txt_regalEtage, txt_regalAbschnitt, txt_bibliothek, txt_masse;
  private Regal regal;
  private JLabel regalInfo, regalNr, regalName, regalEtage, bibliothek,
      regalAbschnitt, masse;
  private int etage, abschnitt;
  private Sprachwahl uebersetzung;


  protected Anzeige (Markierer uebersicht, JPanel front, Regal regal,
      int etage, int abschnitt)
  {
    String sprache;
    sprache = Dashboard.verwendeteSprache ().toString ();
    uebersetzung = new Sprachwahl (sprache);
    setzeUebersicht (uebersicht);
    setzeFront (front);
    this.regal = regal;
    this.etage = etage;
    this.abschnitt = abschnitt;
    setTitle (uebersetzung.lokal
        .gibUebersetzung ("BibVis Standortanzeige"));
    setPreferredSize (new Dimension (800, 600));
    setLayout (new GridBagLayout ());
    erzeugeFenster ();
    setVisible (true);
    pack ();
  }


  protected void erzeugeFenster ()
  {
    beschreibungUebersicht = new JPanel ();
    beschreibungFront = new JPanel ();
    pufferzone = new JPanel ();
    pufferzone.setBorder (BorderFactory.createLoweredBevelBorder ());
    uebersicht.setBorder (BorderFactory.createLineBorder (null));
    beschreibungFront.setBorder (BorderFactory
        .createLoweredBevelBorder ());
    beschreibungUebersicht.setBorder (BorderFactory
        .createLoweredBevelBorder ());

    regalInfo = new JLabel ();
    regalNr = new JLabel ();
    regalName = new JLabel ();
    regalEtage = new JLabel ();
    regalAbschnitt = new JLabel ();
    bibliothek = new JLabel ();
    masse = new JLabel ();

    txt_regalInfo = new JTextPane ();
    txt_regalInfo.setEditable (false);
    txt_regalNr = new JTextPane ();
    txt_regalNr.setEditable (false);
    txt_regalName = new JTextPane ();
    txt_regalName.setEditable (false);
    txt_regalEtage = new JTextPane ();
    txt_regalEtage.setEditable (false);
    txt_regalAbschnitt = new JTextPane ();
    txt_regalAbschnitt.setEditable (false);
    txt_masse = new JTextPane ();
    txt_masse.setEditable (false);

    txt_bibliothek = new JTextPane ();
    txt_bibliothek.setEditable (false);

    beschreibungUebersicht.setLayout (new GridLayout (5, 2));
    beschreibungUebersicht.add (new JPanel ());
    beschreibungUebersicht.add (new JPanel ());
    beschreibungUebersicht.add (new JPanel ());
    beschreibungUebersicht.add (new JPanel ());
    beschreibungUebersicht.add (bibliothek);
    beschreibungUebersicht.add (txt_bibliothek);
    beschreibungUebersicht.add (masse);
    beschreibungUebersicht.add (txt_masse);

    regalInfo.setText (uebersetzung.lokal
        .gibUebersetzung (" Gesuchtes Buch gefunden in:"));
    regalNr.setText (uebersetzung.lokal.gibUebersetzung (" Regal-Nr."));
    regalName.setText (uebersetzung.lokal
        .gibUebersetzung (" Regal-Bezeichnung"));
    regalEtage.setText (uebersetzung.lokal
        .gibUebersetzung (" Regal-Etage"));
    regalAbschnitt.setText (uebersetzung.lokal
        .gibUebersetzung (" Regal-Abschnitt"));

    int[] i = new Datenbank ().gibStandortDaten (regal
        .gibstandortName ());
    bibliothek.setText (uebersetzung.lokal
        .gibUebersetzung (" Bibliothek"));
    masse.setText (uebersetzung.lokal.gibUebersetzung (" Masse"));

    txt_regalInfo.setText ("");
    txt_regalNr.setText ("" + regal.gibRegalId ());
    txt_regalName.setText (regal.gibKuerzel ());
    txt_regalEtage.setText ("" + etage);
    txt_regalAbschnitt.setText ("" + abschnitt);
    txt_bibliothek.setText ("" + regal.gibstandortName ());
    txt_masse.setText ("" + i[0] + "x" + i[1]);

    beschreibungFront.setLayout (new GridLayout (5, 2));

    GridBagConstraints c = new GridBagConstraints ();

    c.fill = GridBagConstraints.BOTH;
    c.weightx = 1;
    c.weighty = 1;

    /* 1. Zeile 1. Spalte */
    c.gridx = 0;
    c.gridy = 0;
    add (beschreibungUebersicht, c);

    /* 1. Zeile 2. Spalte */
    c.gridx = 1;
    c.gridy = 0;
    add (beschreibungFront, c);

    beschreibungFront.add (regalInfo);
    beschreibungFront.add (txt_regalInfo);
    beschreibungFront.add (regalNr);
    beschreibungFront.add (txt_regalNr);
    beschreibungFront.add (regalName);
    beschreibungFront.add (txt_regalName);
    beschreibungFront.add (regalEtage);
    beschreibungFront.add (txt_regalEtage);
    beschreibungFront.add (regalAbschnitt);
    beschreibungFront.add (txt_regalAbschnitt);

    /*
     * Zeile 2
     */

    c.ipadx = 400;
    c.ipady = 300;

    /* 2. Zeile 1. Spalte */
    c.gridx = 0;
    c.gridy = 1;

    pufferzone.add (uebersicht, BorderLayout.CENTER);
    add (pufferzone, c);

    /* 2. Zeile 2. Spalte */
    c.gridx = 1;
    c.gridy = 1;
    c.insets = new Insets (10, 10, 10, 10);

    add (front, c);

  }


  private void setzeUebersicht (Markierer uebersicht)
  {
    this.uebersicht = uebersicht;
  }


  private void setzeFront (JPanel front)
  {
    this.front = front;
  }
}
